package vip.george.p0058;

public class P58 {

    /**
     * 方法一：
     * 使用字符串类的内置split 方法,对字符串进行切割，拿到最后一个单词
     * @param s
     * @return
     */
    public int lengthOfLastWord(String s) {
        String[] s1 = s.split(" ");
        String end = s1[s1.length - 1];
//        System.out.println("最后一个单词是：" + end);
        return end.length();
    }

    /**
     * 方法二：
     * 因为是取最后一个单词，所以从后往前遍历，读取单词后遇到空格则返回长度
     * @param s
     */
    public int lengthOfLastWord2(String s) {
        int len = s.length();
        int count = 0;
        for (int i = len-1; i >=0; i--) {
            //跳过最后一个单词后的所有空格
            if (s.charAt(i) == ' ' && count == 0){
                continue;
            }
            //如果是字母，则长度加1
            if (s.charAt(i) != ' '){
                count++;
            }
            //找到单词前的一个空格（结束）
            else {
                break;
            }
        }
        return count;
    }

    public static void main(String[] args) {
        P58 p58 = new P58();
        System.out.println(p58.lengthOfLastWord("Hello World"));
        System.out.println(p58.lengthOfLastWord("   fly me   to   the moon  "));
        System.out.println(p58.lengthOfLastWord("luffy is still joyboy"));
        System.out.println("============");
        System.out.println(p58.lengthOfLastWord2(""));
        System.out.println(p58.lengthOfLastWord2("a"));
        System.out.println(p58.lengthOfLastWord2("aaa"));
        System.out.println(p58.lengthOfLastWord2("Hello World"));
        System.out.println(p58.lengthOfLastWord2("   fly me   to   the moon  "));
        System.out.println(p58.lengthOfLastWord2("luffy is still joyboy"));
    }

}
